home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 March / Amiga-CD 1996 #3.iso / amiga_technologies / include_i / rexx / rxslib.i < prev    next >
Text File  |  1996-01-19  |  6KB  |  209 lines

  1.      IFND      REXX_RXSLIB_I
  2. REXX_RXSLIB_I  SET   1
  3. **
  4. **    $VER: rxslib.i 1.15 (8.11.91)
  5. **    Includes Release 40.16
  6. **
  7. **    Include file for the REXX Systems Library
  8. **
  9. **    (C) Copyright 1986,1987,1988,1989,1990 William S. Hawes.
  10. **    (C) Copyright 1990-1995 ESCOM AG
  11. **        All Rights Reserved
  12. **
  13.  
  14.      IFND      REXX_STORAGE_I
  15.      INCLUDE  "rexx/storage.i"
  16.      ENDC
  17.  
  18.      ; Macro definitions
  19.  
  20. RXSLIBNAME MACRO
  21.      dc.b      'rexxsyslib.library',0
  22.      ENDM
  23.  
  24. RXSDIR     MACRO                   ; public port name
  25.      dc.b      'REXX',0
  26.      ENDM
  27.  
  28. RXSTNAME MACRO                   ; name for tasks
  29.      dc.b      'ARexx',0
  30.      ENDM
  31.  
  32.      ; Structure definition for the REXX systems library
  33.  
  34.      STRUCTURE RxsLib,LIB_SIZE     ; EXEC library node
  35.      UBYTE      rl_Flags           ; global flags
  36.      UBYTE      rl_Shadow           ; shadow flags
  37.      APTR      rl_SysBase           ; EXEC library base
  38.      APTR      rl_DOSBase           ; DOS library base
  39.      APTR      rl_IeeeDPBase        ; IEEE DP math library base
  40.      LONG      rl_SegList           ; library seglist
  41.      LONG      rl_NIL           ; NIL: stream
  42.      LONG      rl_Chunk           ; allocation quantum
  43.      LONG      rl_MaxNest           ; maximum expression nesting
  44.  
  45.      APTR      rl_NULL           ; static string: NULL
  46.      APTR      rl_FALSE           ; static string: FALSE
  47.      APTR      rl_TRUE           ; static string: TRUE
  48.      APTR      rl_REXX           ; static string: REXX
  49.      APTR      rl_COMMAND           ; static string: COMMAND
  50.      APTR      rl_STDIN           ; static string: STDIN
  51.      APTR      rl_STDOUT           ; static string: STDOUT
  52.      APTR      rl_STDERR           ; static string: STDERR
  53.      APTR      rl_Version           ; version string
  54.  
  55.      APTR      rl_TaskName           ; name string for tasks
  56.      LONG      rl_TaskPri           ; starting priority
  57.      LONG      rl_TaskSeg           ; startup seglist
  58.      LONG      rl_StackSize           ; stack size
  59.      APTR      rl_RexxDir           ; REXX directory
  60.      APTR      rl_CTABLE           ; character attribute table
  61.      APTR      rl_Notice           ; copyright notice
  62.  
  63.      STRUCT   rl_RexxPort,MP_SIZE  ; public port
  64.      UWORD      rl_ReadLock           ; lock count
  65.      APTR      rl_TraceFH           ; global trace console
  66.  
  67.      STRUCT   rl_TaskList,LH_SIZE  ; REXX task list
  68.      WORD      rl_NumTask
  69.      STRUCT   rl_LibList,LH_SIZE   ; Library List header
  70.      WORD      rl_NumLib
  71.      STRUCT   rl_ClipList,LH_SIZE  ; ClipList header
  72.      WORD      rl_NumClip
  73.      STRUCT   rl_MsgList,LH_SIZE   ; pending messages
  74.      WORD      rl_NumMsg
  75.      STRUCT   rl_PgmList,LH_SIZE   ; cached programs
  76.      WORD      rl_NumPgm           ; cache count
  77.  
  78.      UWORD      rl_TraceCnt           ; trace console usage count
  79.      WORD      rl_avail
  80.      LABEL      rl_SIZEOF
  81.  
  82. * Global flag bit definitions for RexxMaster
  83. RLFB_TRACE EQU      RTFB_TRACE           ; interactive tracing?
  84. RLFB_HALT  EQU      RTFB_HALT           ; halt execution?
  85. RLFB_SUSP  EQU      RTFB_SUSP           ; suspend execution?
  86. RLFB_STOP  EQU      6               ; deny further invocations
  87. RLFB_CLOSE EQU      7               ; close the master
  88.  
  89. * Mask for control flags
  90. RLFMASK  EQU      1<<RLFB_TRACE!1<<RLFB_HALT!1<<RLFB_SUSP
  91.  
  92.      ; Initialization constants
  93.  
  94. RXSCHUNK EQU      1024               ; allocation quantum
  95. RXSNEST  EQU      32               ; expression nesting limit
  96. RXSTPRI  EQU      0               ; task priority
  97. RXSSTACK EQU      4096               ; stack size
  98.  
  99.      ; The library entry point offsets
  100.  
  101.      LIBINIT
  102.      LIBDEF   _LVORexx           ; Main entry point
  103.      LIBDEF   _LVOrxParse           ; (private)
  104.      LIBDEF   _LVOrxInstruct       ; (private)
  105.      LIBDEF   _LVOrxSuspend        ; (private)
  106.      LIBDEF   _LVOEvalOp           ; (private)
  107.  
  108.      LIBDEF   _LVOAssignValue      ; (private)
  109.      LIBDEF   _LVOEnterSymbol      ; (private)
  110.      LIBDEF   _LVOFetchValue       ; (private)
  111.      LIBDEF   _LVOLookUpValue      ; (private)
  112.      LIBDEF   _LVOSetValue           ; (private)
  113.      LIBDEF   _LVOSymExpand        ; (private)
  114.  
  115.      LIBDEF   _LVOErrorMsg
  116.      LIBDEF   _LVOIsSymbol
  117.      LIBDEF   _LVOCurrentEnv
  118.      LIBDEF   _LVOGetSpace
  119.      LIBDEF   _LVOFreeSpace
  120.  
  121.      LIBDEF   _LVOCreateArgstring
  122.      LIBDEF   _LVODeleteArgstring
  123.      LIBDEF   _LVOLengthArgstring
  124.      LIBDEF   _LVOCreateRexxMsg
  125.      LIBDEF   _LVODeleteRexxMsg
  126.      LIBDEF   _LVOClearRexxMsg
  127.      LIBDEF   _LVOFillRexxMsg
  128.      LIBDEF   _LVOIsRexxMsg
  129.  
  130.      LIBDEF   _LVOAddRsrcNode
  131.      LIBDEF   _LVOFindRsrcNode
  132.      LIBDEF   _LVORemRsrcList
  133.      LIBDEF   _LVORemRsrcNode
  134.      LIBDEF   _LVOOpenPublicPort
  135.      LIBDEF   _LVOClosePublicPort
  136.      LIBDEF   _LVOListNames
  137.  
  138.      LIBDEF   _LVOClearMem
  139.      LIBDEF   _LVOInitList
  140.      LIBDEF   _LVOInitPort
  141.      LIBDEF   _LVOFreePort
  142.  
  143.      LIBDEF   _LVOCmpString
  144.      LIBDEF   _LVOStcToken
  145.      LIBDEF   _LVOStrcmpN
  146.      LIBDEF   _LVOStrcmpU
  147.      LIBDEF   _LVOStrcpyA           ; obsolete
  148.      LIBDEF   _LVOStrcpyN
  149.      LIBDEF   _LVOStrcpyU
  150.      LIBDEF   _LVOStrflipN
  151.      LIBDEF   _LVOStrlen
  152.      LIBDEF   _LVOToUpper
  153.  
  154.      LIBDEF   _LVOCVa2i
  155.      LIBDEF   _LVOCVi2a
  156.      LIBDEF   _LVOCVi2arg
  157.      LIBDEF   _LVOCVi2az
  158.      LIBDEF   _LVOCVc2x
  159.      LIBDEF   _LVOCVx2c
  160.  
  161.      LIBDEF   _LVOOpenF
  162.      LIBDEF   _LVOCloseF
  163.      LIBDEF   _LVOReadStr
  164.      LIBDEF   _LVOReadF
  165.      LIBDEF   _LVOWriteF
  166.      LIBDEF   _LVOSeekF
  167.      LIBDEF   _LVOQueueF
  168.      LIBDEF   _LVOStackF
  169.      LIBDEF   _LVOExistF
  170.  
  171.      LIBDEF   _LVODOSCommand
  172.      LIBDEF   _LVODOSRead
  173.      LIBDEF   _LVODOSWrite
  174.      LIBDEF   _LVOCreateDOSPkt     ; obsolete
  175.      LIBDEF   _LVODeleteDOSPkt     ; obsolete
  176.      LIBDEF   _LVOSendDOSPkt       ; (private)
  177.      LIBDEF   _LVOWaitDOSPkt       ; (private)
  178.      LIBDEF   _LVOFindDevice       ; (private)
  179.  
  180.      LIBDEF   _LVOAddClipNode
  181.      LIBDEF   _LVORemClipNode
  182.      LIBDEF   _LVOLockRexxBase
  183.      LIBDEF   _LVOUnlockRexxBase
  184.      LIBDEF   _LVOCreateCLI        ; (private)
  185.      LIBDEF   _LVODeleteCLI        ; (private)
  186.      LIBDEF   _LVOCVs2i
  187.  
  188. * Character attribute flag bits used in REXX.
  189. CTB_SPACE   EQU   0               ; white space characters
  190. CTB_DIGIT   EQU   1               ; decimal digits 0-9
  191. CTB_ALPHA   EQU   2               ; alphabetic characters
  192. CTB_REXXSYM EQU   3               ; REXX symbol characters
  193. CTB_REXXOPR EQU   4               ; REXX operator characters
  194. CTB_REXXSPC EQU   5               ; REXX special symbols
  195. CTB_UPPER   EQU   6               ; UPPERCASE alphabetic
  196. CTB_LOWER   EQU   7               ; lowercase alphabetic
  197.  
  198. * The flag form of the character attributes
  199. CTF_SPACE   EQU   1<<CTB_SPACE
  200. CTF_DIGIT   EQU   1<<CTB_DIGIT
  201. CTF_ALPHA   EQU   1<<CTB_ALPHA
  202. CTF_REXXSYM EQU   1<<CTB_REXXSYM
  203. CTF_REXXOPR EQU   1<<CTB_REXXOPR
  204. CTF_REXXSPC EQU   1<<CTB_REXXSPC
  205. CTF_UPPER   EQU   1<<CTB_UPPER
  206. CTF_LOWER   EQU   1<<CTB_LOWER
  207.  
  208.      ENDC
  209.